2/26/2020

Retos 1

Presentación

  • ¿Quiénes son principiantes? ¿Quiénes saben usar ggplot?

  • Intercalar

  • Posticks

Retos 1: Base de datos de mujeres

Objetivo:

Usar bases de datos con información de mujeres:

  • Base de datos de Rladies

  • Base de datos de mujeres profesionistas

  • Base de datos mexicana (si da tiempo)

Primera base de datos

Eventos de Rladies

  • Base de datos creada para usarse en datos-de-miercoles (26/06/2019).

“Datos de miércoles es el primo latinoamericano de #tidytuesday, un proyecto semanal de datos organizado por la comunidad de R, que busca que sus participantes desarrollen sus habilidades procesando datos para crear gráficos significativos usando ggplot2, tidyr, dplyr y otras herramientas del tidyverse. El proyecto original surgió en el marco de la comunidad de aprendizaje online R4DS y desde abril de 2019 la comunidad sudamericana de R impulsa una versión local en español”

Github

Clonar el repositorio

  • Primer paso

  • Segundo paso

  • Tercer paso

  • Cuarto paso

Rmarkdown

Aza

Descargar los datos

# install_packages("readr")
library(readr)
  • Infromación de los capitulos de Rladies
capitulos_rladies <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-26/capitulos_rladies.csv")
## Parsed with column specification:
## cols(
##   capitulo = col_character(),
##   creacion = col_datetime(format = ""),
##   miembros = col_double(),
##   latitud = col_double(),
##   longitud = col_double(),
##   ciudad = col_character(),
##   pais = col_character()
## )

head(capitulos_rladies)
## # A tibble: 6 x 7
##   capitulo      creacion            miembros latitud longitud ciudad       pais 
##   <chr>         <dttm>                 <dbl>   <dbl>    <dbl> <chr>        <chr>
## 1 R-Ladies Bar… 2016-10-22 10:56:36      389    41.4     2.17 Barcelona    ES   
## 2 R-Ladies Ush… 2018-05-09 16:39:48       23   -54.8   -68.3  Ushuaia      AR   
## 3 R-Ladies Bil… 2019-02-27 05:37:09       38    43.2    -2.93 Bilbao       ES   
## 4 R-Ladies Bar… 2018-05-10 02:22:15      114   -41.1   -71.3  San Carlos … AR   
## 5 R-Ladies Mel… 2016-09-02 00:31:57     1213   -37.8   145.   Melbourne    AU   
## 6 R-Ladies Nov… 2019-05-24 15:14:08       46    45.2    19.8  Novi Sad     RS

  • Infromación de los eventos de Rladies
eventos_rladies <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-06-26/eventos_rladies.csv")
## Parsed with column specification:
## cols(
##   capitulo = col_character(),
##   titulo_evento = col_character(),
##   fecha_local = col_date(format = ""),
##   hora_local = col_time(format = ""),
##   respuesta_asistire = col_double(),
##   descripcion_evento = col_character()
## )

Rmarkdown

Aza

Mapa

¿Dondé se encuentran los capitulos de Rladies?

#install.packages(c("ggplot2","maps"))
library(ggplot2)
library(maps)
world <- map_data("world")
head(world)
##        long      lat group order region subregion
## 1 -69.89912 12.45200     1     1  Aruba      <NA>
## 2 -69.89571 12.42300     1     2  Aruba      <NA>
## 3 -69.94219 12.43853     1     3  Aruba      <NA>
## 4 -70.00415 12.50049     1     4  Aruba      <NA>
## 5 -70.06612 12.54697     1     5  Aruba      <NA>
## 6 -70.05088 12.59707     1     6  Aruba      <NA>

Podemos graficar a todo el mundo

ggplot()+ geom_polygon(data = world, 
                       aes(x=long, 
                           y = lat, 
                           group = group)) + 
  coord_fixed(1.3)

¿Pero si quiero la información de Rladies?

ggplot()+ geom_polygon(data = capitulos_rladies, 
                       aes(x=longitud, 
                           y = latitud, 
                           group= pais)) + 
  coord_fixed(1.3)

No podemos remplazar el dataset

ggplot()+ geom_polygon(data = capitulos_rladies, 
                       aes(x=longitud, 
                           y = latitud,
                           group= pais)) + 
  coord_fixed(1.3)

ggplot()+ geom_polygon(data = world, 
                       aes(x=long, 
                           y = lat, 
                           group = group)) + 
  coord_fixed(1.3) +
  geom_point(data=capitulos_rladies,
             aes(x = longitud, 
                 y=latitud), 
             color= "#be59e3")

ggplot()+ geom_polygon(data = world, 
                       aes(x=long, 
                           y = lat, 
                           group = group)) + 
  coord_fixed(1.3) +
  geom_point(data=capitulos_rladies,
             aes(x = longitud, 
                 y=latitud,
                 size= miembros), 
             color= "#be59e3")

Base de datos: Mujeres profesionistas

  • Base de datos creada para usarse en #tidytuesday (26/06/2019).

  • Basada en U.S. BUREAU OF LABOR STATISTICS

“Mujeres en la fuerza laboral: datos de la Oficina de Estadísticas Laborales y la Oficina del Censo sobre las mujeres en la fuerza laboral. Existen datos históricos sobre las ganancias de las mujeres y la situación laboral, así como información detallada sobre la ocupación específica y las ganancias de 2013-2016.”

Importar Datos

jobs_gender <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-03-05/jobs_gender.csv")
## Parsed with column specification:
## cols(
##   year = col_double(),
##   occupation = col_character(),
##   major_category = col_character(),
##   minor_category = col_character(),
##   total_workers = col_double(),
##   workers_male = col_double(),
##   workers_female = col_double(),
##   percent_female = col_double(),
##   total_earnings = col_double(),
##   total_earnings_male = col_double(),
##   total_earnings_female = col_double(),
##   wage_percent_of_male = col_double()
## )
earnings_female <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-03-05/earnings_female.csv") 
## Parsed with column specification:
## cols(
##   Year = col_double(),
##   group = col_character(),
##   percent = col_double()
## )
employed_gender <- readr::read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2019/2019-03-05/employed_gender.csv") 
## Parsed with column specification:
## cols(
##   year = col_double(),
##   total_full_time = col_double(),
##   total_part_time = col_double(),
##   full_time_female = col_double(),
##   part_time_female = col_double(),
##   full_time_male = col_double(),
##   part_time_male = col_double()
## )

¿Qué es cada dataframe?

Trabajo

colnames(jobs_gender)
##  [1] "year"                  "occupation"            "major_category"       
##  [4] "minor_category"        "total_workers"         "workers_male"         
##  [7] "workers_female"        "percent_female"        "total_earnings"       
## [10] "total_earnings_male"   "total_earnings_female" "wage_percent_of_male"
head(jobs_gender)
## # A tibble: 6 x 12
##    year occupation major_category minor_category total_workers workers_male
##   <dbl> <chr>      <chr>          <chr>                  <dbl>        <dbl>
## 1  2013 Chief exe… Management, B… Management           1024259       782400
## 2  2013 General a… Management, B… Management            977284       681627
## 3  2013 Legislato… Management, B… Management             14815         8375
## 4  2013 Advertisi… Management, B… Management             43015        17775
## 5  2013 Marketing… Management, B… Management            754514       440078
## 6  2013 Public re… Management, B… Management             44198        16141
## # … with 6 more variables: workers_female <dbl>, percent_female <dbl>,
## #   total_earnings <dbl>, total_earnings_male <dbl>,
## #   total_earnings_female <dbl>, wage_percent_of_male <dbl>

¿Qué es cada dataframe?

Salarios

“Percent” es el salario de las muejres comparado con el de los hombres.

colnames(earnings_female)
## [1] "Year"    "group"   "percent"
head(earnings_female)
## # A tibble: 6 x 3
##    Year group                     percent
##   <dbl> <chr>                       <dbl>
## 1  1979 Total, 16 years and older    62.3
## 2  1980 Total, 16 years and older    64.2
## 3  1981 Total, 16 years and older    64.4
## 4  1982 Total, 16 years and older    65.7
## 5  1983 Total, 16 years and older    66.5
## 6  1984 Total, 16 years and older    67.6

¿Qué es cada dataframe?

Tipo de empleo

Los datos estan en porcentaje

Total_fll_time + total_part_time = 100%

colnames(employed_gender)
## [1] "year"             "total_full_time"  "total_part_time"  "full_time_female"
## [5] "part_time_female" "full_time_male"   "part_time_male"
head(employed_gender)
## # A tibble: 6 x 7
##    year total_full_time total_part_time full_time_female part_time_female
##   <dbl>           <dbl>           <dbl>            <dbl>            <dbl>
## 1  1968            86              14               75.1             24.9
## 2  1969            85.5            14.5             74.9             25.1
## 3  1970            84.8            15.2             73.9             26.1
## 4  1971            84.4            15.6             73.2             26.8
## 5  1972            84.3            15.7             73.1             26.9
## 6  1973            84.4            15.6             73.2             26.8
## # … with 2 more variables: full_time_male <dbl>, part_time_male <dbl>

Rmarkdown

Aza

Base de Datos: México

Personas en puestos directivos de la administración pública por sexo

Tenemos que formatear el dataframe

library(tidyr)

m_puestos <- MujeresEnPuestosDirectivos %>%
  gather(Sexo, Numero, 3:4)

m_puestos
## # A tibble: 22 x 4
##    Estado   Fecha Sexo    Numero
##    <chr>    <dbl> <chr>    <dbl>
##  1 Nacional  2015 Mujeres  18054
##  2 Nacional  2014 Mujeres  29611
##  3 Nacional  2013 Mujeres  31831
##  4 Nacional  2012 Mujeres  27528
##  5 Nacional  2011 Mujeres  27619
##  6 Nacional  2010 Mujeres  31980
##  7 Nacional  2009 Mujeres  24747
##  8 Nacional  2008 Mujeres  20767
##  9 Nacional  2007 Mujeres  21509
## 10 Nacional  2006 Mujeres  20069
## # … with 12 more rows

Mujeres en Puestos Directivos

Podemos graficar

ggplot(m_puestos, aes(x= Fecha, 
                      y= Numero, 
                      group=Sexo, 
                      color=Sexo)) + 
  geom_point() +
  geom_smooth(method = "lm")

Defunciones por presuntos homicidios perpetradas contra mujeres

Tasa_bruta_homicidio <- readr::read_csv("datos_mexico/Tasa_bruta_homicidio.csv")
## Parsed with column specification:
## cols(
##   Entidad = col_character(),
##   Fecha = col_double(),
##   `Tasa por cada cien mil mujeres` = col_double()
## )
Tasa_bruta_homicidio
## # A tibble: 957 x 3
##    Entidad                Fecha `Tasa por cada cien mil mujeres`
##    <chr>                  <dbl>                            <dbl>
##  1 "Nacional"              1990                             2.89
##  2 "Aguascalientes"        1990                             0.72
##  3 "Baja California"       1990                             3.48
##  4 "Baja California Sur"   1990                             0   
##  5 "Campeche"              1990                             2.55
##  6 "Coahuila de Zaragoza"  1990                             0.5 
##  7 "Colima"                1990                             0.86
##  8 "Chiapas"               1990                             1.7 
##  9 "Chihuahua"             1990                             1.69
## 10 "Ciudad de M\xe9xico"   1990                             3.13
## # … with 947 more rows

Defunciones por presuntos homicidios perpetradas contra mujeres

library(plotly)

Tasa_bruta_homicidio <- readr::read_csv("datos_mexico/Tasa_bruta_homicidio.csv")

h <- ggplot(Tasa_bruta_homicidio, aes(x= Fecha, 
                                 y= `Tasa por cada cien mil mujeres`,
                                 group=Entidad,
                                 color = Entidad
                                 )) + 
  geom_point() +
  geom_smooth(method = "lm")

Sys.getlocale()
## [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8"
Sys.setlocale(locale="C")
## [1] "C/C/C/C/C/en_US.UTF-8"

ggplotly(h, useBytes = TRUE)

Mapa

Instalar los datos de México

if (!require("devtools")) {
    install.packages("devtools")
}
devtools::install_github("diegovalle/mxmaps")
library("mxmaps")

head(df_mxstate)
##   region          state_name  state_name_official state_abbr
## 1     01      Aguascalientes       Aguascalientes        AGS
## 2     02     Baja California      Baja California         BC
## 3     03 Baja California Sur  Baja California Sur        BCS
## 4     04            Campeche             Campeche       CAMP
## 5     05            Coahuila Coahuila de Zaragoza       COAH
## 6     06              Colima               Colima        COL
##   state_abbr_official     pop pop_male pop_female afromexican part_afromexican
## 1                Ags. 1312544   640091     672453         653             4559
## 2                  BC 3315766  1650341    1665425        7445            10432
## 3                 BCS  712029   359137     352892       11032             5132
## 4               Camp.  899931   441276     458655        3554             6833
## 5               Coah. 2954915  1462612    1492303        2761             8137
## 6                Col.  711235   350791     360444         762             3314
##   indigenous part_indigenous
## 1     153395           18716
## 2     283055           38391
## 3     103034           11728
## 4     400811           13140
## 5     204890           28588
## 6     145297           12373

homicidio <- Tasa_bruta_homicidio[Tasa_bruta_homicidio$Fecha == 2018,]
homicidio <- homicidio[-1,]

df <- cbind(df_mxstate,homicidio)

## usando fuzzyjoin
#library(fuzzyjoin)

#df <- df_mxstate %>%
#  regex_left_join(homicidio,by = c(state_name="Entidad"))
#df <- df[-2,]

Homicidios por estado

# https://www.diegovalle.net/mxmaps/index.html
df_mxstate$value <- df_mxstate$pop
df$value <- df$`Tasa por cada cien mil mujeres`

 mxstate_choropleth(df, title = "Homicidios por estado", num_colors = 1)